#ifndef _TYPES_H_
#define _TYPES_H_

#ifndef  NULL
#define  NULL ((void *)0)
#endif

#define  FALSE			0
#define  TRUE                   1


//#define SUCCESS                 0
//#define UNSUCCESSFUL            (0xFFFFFFFF)


typedef void                    VOID;
typedef void*                   PVOID;

typedef unsigned char		BOOL;
typedef unsigned char		BYTE;
typedef unsigned char		UCHAR;
typedef char          		CHAR;

typedef unsigned char*          PBYTE;
typedef unsigned char*          PUCHAR;
typedef char*                   PCHAR;

typedef unsigned short  	USHORT;
typedef unsigned short		WORD;
typedef unsigned short* 	PUSHORT;
typedef unsigned short*         PWORD;

typedef unsigned int		UINT;
typedef unsigned int		ULONG;
typedef unsigned int		DWORD;
typedef unsigned int *		PUINT;
typedef unsigned int *		PULONG;
typedef unsigned int * 		PDWORD;

typedef enum _status{
    SUCCESS,
    UNSUCCESSFUL,
    ALLOCATE_MEM_FAILED,
    INIT_FAILED,
    DATA_XFER_LENGTH_ERROR,
    DATA_SIZE_TOO_LONG,
    SSD_PAGE_OVERWRITE,
    SSD_PAGE_NOT_WRITTEN,
    TIME_OUT,
    DATA_COMPARE_ERROR,
    LOOP_COMPLETED
}STATUS;
//typedef unsigned int            STATUS;
typedef unsigned long long	U64;
typedef unsigned long long	ULONGLONG;
typedef unsigned long long*     PULONGLONG;

typedef unsigned int        U32;

#endif
